#!user/bin/env python3
# -- coding: utf-8 --
# @Createtime：2022/5/15
# @Updatetime：
# @Author：Test008
# @File：SearchStuInfo.py
# @Description：查找学生信息
import os
from config import filename


def search():
    student_querry = []
    while True:
        id = ''
        name = ''
        if os.path.exists(filename):
            choose = input('按ID查找请输入1，按姓名查找请输入2：')
            if choose == '1':
                id = input('请输入ID：')
            elif choose == '2':
                name = input('请输入姓名：')
            else:
                print('你输入有误，请重新输入')
                search()
            with open(filename, 'r', encoding='utf-8') as rfile:
                student_old = rfile.readlines()
                for item in student_old:
                    d = dict(eval(item))
                    if id != '':
                        if d['id'] == id:
                            student_querry.append(d)
                            # print(student_querry)
                    elif name != '':
                        if d['name'] == name:
                            student_querry.append(d)
                            # print(student_querry)
            # 显示查询结果
            show_student(student_querry)
            # 清空列表
            student_querry.clear()
            answer = input('你继续查询码？ y/n\n')
            if answer == 'y':
                continue
            elif answer == 'n':
                break
        else:
            print('无学生信息')
            return


def show_student(lst):
    if len(lst) == 0:
        print('没有查到学生信息，无数据显示!!!')
        return
    # 定义标题显示格式
    format_title = '{:^6}\t{:^12}\t{:^8}\t{:^15}\t{:^10}\t{:^8}'
    print(format_title.format('ID', '姓名', '英语成绩', 'Python成绩', 'Java成绩', '总成绩'))
    # 定义标题显示格式
    format_data = '{:^6}\t{:^12}\t{:^8}\t{:^15}\t{:^16}\t{:^11}'
    for item in lst:
        print(format_data.format(item.get('id'),
                                 item['name'],
                                 item.get('english'),
                                 item['python'],
                                 item.get('java'),
                                 int(item['english']) + int(item.get('python')) + int(item['java'])
                                 ))
